Overview | Package | Class | Tree | Deprecated | Index | Help
| Oracle® Database XML Java API Reference 10g Release 2 (10.2) B14293-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.soap.server
Interface Provider

All Known Subinterfaces:
  AutonomousProvider

All Known Implementing Classes:
  EjbProvider, EntityEJBProvider, JavaProvider, StatefulEJBProvider, StatelessEJBProvider

public interface Provider

`Provider` defines the capabilities that must be supported for each type of service provider, such as Java class, stored procedure, or EJB. Providers are responsible for service authorization, and parameter unmarshalling/marshalling.

Providers, aka provider instances, must be deployed to the SOAP handler. Each provider deployment must define the provider name, Java classname that implements the provider (which must be an implementation of this interface), and any number of provider-specific key-value pairs. Given the provider deployment information, the SOAP handler will interact with the providers solely through this interface.

The SOAP handler will create one instance for each deployed provider instance. It is possible to have one or more instances of each provider implementation (which is not to say that is necessarily recommended). In any event, each instance of a provider must be able to handle requests concurrently.

A provider implementation must:

- provide a no-args constructor
- be thread-safe

Extensions that will be made to this interface:

- support service description (requires that the server pass some general information to the provider, which is TBD)

Method Summary
`void` | `destroy()` One-time provider instance cleanup.
`java.lang.String` | `getId()` Get this provider's unique name.
`void` | `init(ProviderDeploymentDescriptor pd, SOAPServerContext ssc)` One-time provider instance initialization.
`void` | `invoke(RequestContext requestContext)` Invoke the requested method in the specified service, where the SOAP request is completely described in the request context.

Method Detail

### init

    public void init(ProviderDeploymentDescriptor pd,
                     SOAPServerContext ssc)
              throws SOAPException

  One-time provider instance initialization. This method will be invoked by the SOAP handler exactly once before the handler makes any requests to services supported by the provider, allowing the provider to set up any provider-global context.
  Parameters:
    `pd` - The provider descriptor which contains the provider deployment information.
    `ssc` - The SOAP server context, which contains the logger for informational messages.
  Throws:
    `SOAPException` - Unable to initialize and therefore unable to provide services.
  See Also:
    `destroy()`

### destroy

    public void destroy()
                 throws SOAPException

  One-time provider instance cleanup. This method will be invoked by the SOAP handler exactly once before the handler shuts down. This gives the provider the opportunity to do cleanup of provider-global state.
  Throws:
    `SOAPException` - Unable to destroy.
  See Also:
    `init(oracle.soap.server.ProviderDeploymentDescriptor, oracle.soap.server.SOAPServerContext)`

### getId

    public java.lang.String getId()

  Get this provider's unique name.
  Returns:
    This providers name, which is unique within the SOAP handler.

### invoke

    public void invoke(RequestContext requestContext)
                throws SOAPException

  Invoke the requested method in the specified service, where the SOAP request is completely described in the request context.
  Parameters:
    `requestContext` - The `RequestContext` that contains everything the provider needs to process the request.
  Throws:
    `SOAPException` - Error during method invocation for any number of reasons, including user does not have permission, method does not exist.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Oracle® Database XML Java API Reference 10g Release 2 (10.2) B14293-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003, 2005, Oracle. All rights reserved.